package com.example.chapter05;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.example.chapter05.R;

import java.util.Random;

public class LoginForgetActivity extends AppCompatActivity implements View.OnClickListener {

    // 定义变量，存储用户输入的密码、验证码和手机号
    private String mPhone;
    private String mVerifyCode;
    private EditText et_password_first;  // 用于输入新密码的 EditText
    private EditText et_password_second; // 用于确认新密码的 EditText
    private EditText et_verifycode;      // 用于输入验证码的 EditText

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 设置布局文件
        setContentView(R.layout.activity_login_forget);

        // 绑定控件
        et_password_first = findViewById(R.id.et_password_first);
        et_password_second = findViewById(R.id.et_password_second);
        et_verifycode = findViewById(R.id.et_verifycode);

        // 从上一个页面获取用户要修改密码的手机号
        mPhone = getIntent().getStringExtra("phone");

        // 设置按钮的点击事件监听器
        findViewById(R.id.btn_verifycode).setOnClickListener(this);
        findViewById(R.id.btn_confirm).setOnClickListener(this);
    }

    // 处理点击事件
    @Override
    public void onClick(View v) {
        // 根据点击的按钮 ID 执行不同的操作
        if(v.getId() == R.id.btn_verifycode) {
            // 用户点击了“获取验证码”按钮
            // 生成六位随机数字的验证码
            mVerifyCode = String.format("%06d", new Random().nextInt(999999));

            // 弹出一个提示框，提示用户记住六位验证码
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("请记住验证码");
            builder.setMessage("手机号" + mPhone + ", 本次验证码是 " + mVerifyCode + ", 请输入验证码");
            builder.setPositiveButton("好的", null); // 按钮点击后关闭对话框
            AlertDialog dialog = builder.create();
            dialog.show();
        }
        else if(v.getId()==R.id.btn_confirm)
        {
            // 用户点击了“确定”按钮，开始验证输入
            String password_first = et_password_first.getText().toString();
            String password_second = et_password_second.getText().toString();

            // 检查第一次输入的密码长度是否为 6 位
            if (password_first.length() < 6) {
                Toast.makeText(this, "请输入正确的密码", Toast.LENGTH_SHORT).show();
                return;
            }

            // 检查两次输入的密码是否一致
            if (!password_first.equals(password_second)) {
                Toast.makeText(this, "两次输入的新密码不一致", Toast.LENGTH_SHORT).show();
                return;
            }

            // 检查输入的验证码是否与生成的验证码一致
            if (!mVerifyCode.equals(et_verifycode.getText().toString())) {
                Toast.makeText(this, "请输入正确的验证码", Toast.LENGTH_SHORT).show();
                return;
            }

            // 如果通过了所有的验证，提示密码修改成功
            Toast.makeText(this, "密码修改成功", Toast.LENGTH_SHORT).show();

            // 创建一个 Intent 用于返回新密码给上一个页面
            Intent intent = new Intent();
            intent.putExtra("new_password", password_first); // 将新密码传递回上一个页面
            setResult(Activity.RESULT_OK, intent); // 设置返回结果为 RESULT_OK
            finish(); // 关闭当前页面并返回
        }

    }
}
